<%@page contentType="text/html;charset=UTF-8" %>
<%@ page  import="java.util.Hashtable" %>
<jsp:useBean id="CMPBean" scope="application" class="BeanRegistration.CMPBean">
    <%
   CMPBean.conect("indi/RegistrationBean");
        %>
    </jsp:useBean>
    <%= request.getCharacterEncoding() %>
<jsp:useBean id="regist" scope="session" class="BeanRegistration.Registration"/>
<jsp:useBean id="RazdelBean" scope="application" class="BeanRegistration.RazdelBean">
  
    <%
        RazdelBean.conect("indi/RazdelBean"); 
  %>
</jsp:useBean>    
<html>
    <head>
        
        <title>JSP Page</title>
    </head>
    <body>
   <jsp:setProperty name="regist" property="login" param="login"/>
   <jsp:setProperty name="regist" property="password" param="password"/>
   <%@ include file="enter.jsp" %>    
   <table border="0">
   <%
        Hashtable table1; //таблица для хронения связей ID и разделов
        table1 = RazdelBean.getTable();//возврошает таблицу
        if(request.getParameter("enter")!=null){
        if(Integer.parseInt(request.getParameter("enter"))!=-1){
          if(Integer.parseInt(request.getParameter("index"))==-1){
            String str =  RazdelBean.getText(new Integer(Integer.parseInt(request.getParameter("enter"))));
            RazdelBean.setText(new Integer(Integer.parseInt(request.getParameter("enter"))),str+request.getParameter("text"));
          }
             //добавляет разделы
              if(Integer.parseInt(request.getParameter("index"))==-2){ 
              Integer ID = (Integer)(table1.get((Object)(request.getParameter("razdel"))));
              int razdel = RazdelBean.getRazdel(ID);
              int podrazdel = RazdelBean.getPodrazdel(ID);
              int podpodrazdel = RazdelBean.getPodpodrazdel(ID);
              if(podpodrazdel != 0){ // подподраздел
                  podpodrazdel++; 
                  RazdelBean.create(razdel, podrazdel, podpodrazdel,request.getParameter("text"),1);
              }else{
                  if(podrazdel!=0){  //подраздел
                      podrazdel++;
                      RazdelBean.create(razdel,podrazdel,podpodrazdel,request.getParameter("text"),1);
                  }else{ // раздел
                      razdel++;
                      RazdelBean.create(razdel,podrazdel,podpodrazdel,request.getParameter("text"),1);
                  }
              }
           } 
          }
        }
       int flag = -1; // отслеживает какие разделы пресутствуют в выводе информации
                      // 0 - выводит за первым разделом
                      // 1 -         за вторым
                      // 2 -            третим(под под разделом)
       int index = -1; // принимает какая ссылка была нажата
        if(request.getParameter("index")!=null){
           index= Integer.parseInt(request.getParameter("index")); //получаем какая из ссылки нажата
           
          }
       boolean textTrue = false; //флаг для открытия ввода
       boolean textRazdel = true; 
       Integer k , kIndex; //промежуточные переменные
       kIndex = new Integer(index); 
       int intRazdel[]=RazdelBean.getSortText(); //возврошает упородоченый масив разделов
        Hashtable table; //таблица для хронения связей ID и разделов
        table = RazdelBean.getTable();//возврошает таблицу
        
       for(int i=0;i<RazdelBean.size();i++){ 
           
           k=(Integer)(table.get((Object)(new String().valueOf(intRazdel[i])))); //возврошает ID раздела
           if(k.equals(kIndex)){
              
               textTrue = true; // разрешает ввод текста и позволяет открыть окно
           }
           if(RazdelBean.getPodpodrazdel(k)==0){
             
               if(RazdelBean.getPodrazdel(k)==0){
                  
                 
         %>
          <!-- выводит корневой раздел  -->
                <tr>
                     <td></td>
                     <%if(flag == 1 ){
                          for(int j=i;j<intRazdel.length;j++){
                             if((intRazdel[j]%10)==0&&(intRazdel[j]%100)!=0&&(intRazdel[j]-intRazdel[i-1])<=10){ //проверяет имеются еше разделы данного уровня
                             textRazdel=false;
                        }
                      }
                         if(flag == 2){
                            textRazdel=true;  
                         }
                         if(textRazdel && CMPBean.getUser(regist.getLogin())==1 ){
                         %><td><a href="metodalogiya.jsp?enter=-1&index=<%= k%>&flagRazdel=-2&razdel=<%= intRazdel[i-1]%>">add razdel</a></td><%  }}flag = 0;textRazdel=true;%> <!--для третего раздела -->
                </tr>
                <tr>  
                         <td></td>
                         <% if(request.getParameter("flagRazdel")!= null && Integer.parseInt(request.getParameter("flagRazdel"))==-2){%><td><%@ include file="enterText.jsp" %></td><% }%>
                </tr>
                <tr>
                    <td><%=RazdelBean.getRazdel(k) +"&nbsp;"%></td>
                    <td><%=RazdelBean.getText(k)%><br></td>
                </tr>
                    <tr>
                        <td></td>
                       <% if( CMPBean.getUser(regist.getLogin())==1 ){%><td><a href="metodalogiya.jsp?enter=-1&index=<%= k%>&flagRazdel=-1">add Text</td><%}%>
                   </tr>     
                     <tr>  
                         <td></td>
                         <td><%@ include file="enterText.jsp" %></td>
                     </tr>
                  <%
                  
           }else{
         
                   
    %>
        <!-- выводит второй раздел  -->
        <tr>
            <td></td>
            <%
                if(flag == 1){
                for(int j=i;j<intRazdel.length;j++){
                    if((intRazdel[j]%10)==0&&(intRazdel[j]%100)!=0&&(intRazdel[j]-intRazdel[i-1])<=10){//проверяет имеются еше разделы данного уровня
                        textRazdel=false;
                    }
                  }
                 }
                  if(flag == 0){
                    for(int j=i;j<intRazdel.length;j++){
                    if((intRazdel[j]%100)==0){//проверяет имеются еше разделы данного уровня
                        textRazdel=false;
                    }
                  }
                }
                if(flag==2){
                     textRazdel=true;   
                }
                if(textRazdel && CMPBean.getUser(regist.getLogin())==1 ){
                %><td><a href="metodalogiya.jsp?enter=-1&index=<%= k%>&flagRazdel=-2&&razdel=<%= intRazdel[i-1]%>">add razdel</a></td><%  }flag =1;textRazdel=true;%><!--для первого или тетего раздела -->
        </tr>
         <tr>  
              <td></td>
               <% if(request.getParameter("flagRazdel")!= null && Integer.parseInt(request.getParameter("flagRazdel"))==-2){%><td><%@ include file="enterText.jsp" %></td><% }%>
         </tr> 
         <tr>
            
            <td><%="&nbsp;"+"&nbsp;"+RazdelBean.getRazdel(k)+"."+RazdelBean.getPodrazdel(k)+"&nbsp;"%></td>
            <td><%=RazdelBean.getText(k)%><br></td>
        </tr>
        <tr>
            <td></td>
            <% if( CMPBean.getUser(regist.getLogin())==1 ){%><td><a href="metodalogiya.jsp?enter=-1&index=<%= k%>&flagRazdel=-1">add Text</td><%}%>
        </tr>     
                     <tr>  
                         <td></td>
                         <td><%@ include file="enterText.jsp" %></td>
                     </tr>
                  <%
       }
           }else{
             
               
    %>
        <!-- выводит третий раздел  -->
        <tr>
            <td></td>
            <%if(flag == 1){
                for(int j=i;j<intRazdel.length;j++){
                    if((intRazdel[j]%10)==0&&(intRazdel[j]%100)!=0&&(intRazdel[j]-intRazdel[i-1])<=10){//проверяет имеются еше разделы данного уровня
                        textRazdel=false;
                    }
                  }
                
              if(textRazdel && CMPBean.getUser(regist.getLogin())==1 ){
                %><td><a href="metodalogiya.jsp?enter=-1&index=<%= k%>&flagRazdel=-2&razdel=<%= intRazdel[i-1]%>">add razdel1</a></td><%  }}flag =2;textRazdel=true;%><!--для второго раздела -->
        </tr>
        <tr>  
              <td></td>
              <% if(request.getParameter("flagRazdel")!= null && Integer.parseInt(request.getParameter("flagRazdel"))==-2){%><td><%@ include file="enterText.jsp" %></td><% }%>
        </tr>
        <tr>
            <td><%="&nbsp;"+"&nbsp;"+"&nbsp;"+RazdelBean.getRazdel(k)+"."+RazdelBean.getPodrazdel(k)+"."+RazdelBean.getPodpodrazdel(k)+"&nbsp;"%></td>
            <td><%=RazdelBean.getText(k)%><br></td>
        </tr>
        <tr>
                <td></td>
                <% if( CMPBean.getUser(regist.getLogin())==1 ){%><td><a href="metodalogiya.jsp?enter=-1&index=<%= k%>&flagRazdel=-1">add Text</td><%}%>
            </tr>     
            </tr>     
                     <tr>  
                         <td></td>
                         <td><%@ include file="enterText.jsp" %></td>
                     </tr>
                  <%
         }
        }
    %>
    </table>
  </body>
</html>
